home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 11 / CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso / s / smallcaps.pprx < prev    next >
Text File  |  1992-03-14  |  2KB  |  77 lines

  1. /*
  2. @BSmallCaps  @P@ICopyright Gold Disk Inc., February, 1992
  3. This Genie will convert a block of text to smallcaps.
  4. */
  5. if ~show(l, "gdarexxsupport.library") then
  6.     if ~(exists("libs:gdarexxsupport.library") & addlib("gdarexxsupport.library", 0, -30)) then
  7.         exit_msg("Please install the gdarexxsupport.library in your libs: directory before running this Genie")
  8.     
  9. if word(ppm_GetState(), 1) ~= "3" then
  10.     exit_msg("This Genie works only in edit mode!!")
  11.  
  12. text     = ppm_GetBlockText(1)
  13. if text  = '' then exit_msg("No block selected")
  14.  
  15. lowersize    = ppm_GetSize()
  16. capsize        = 1.25 * lowersize
  17. captext        = "\fs<"capsize">"
  18. lwrtext        = "\fs<"lowersize">"
  19. cursize        = lowersize
  20.  
  21. i        = 1
  22. len        = length(text)
  23. caplen    = length(captext)
  24. lwrlen    = length(lwrtext)
  25.  
  26. call ppm_ShowStatus("Working..")
  27.  
  28. do while i < len
  29.  
  30.     i = skipcodes(text, i)
  31.     curletter   = substr(text, i, 1)
  32.  
  33.     if curletter = ' ' then
  34.     do
  35.         i = i + 1
  36.         iterate
  37.     end
  38.     
  39.  
  40.     if datatype(curletter, l) then
  41.     do
  42.     
  43.         text = overlay(upper(curletter), text, i)
  44.  
  45.         if cursize = capsize then
  46.         do
  47.             text = insert(lwrtext, text, i - 1)
  48.             i = i + lwrlen
  49.             len = len + lwrlen
  50.             cursize = lowersize
  51.         end
  52.     end
  53.     else if cursize = lowersize & ~datatype(curletter, l) then
  54.     do
  55.         cursize = capsize
  56.         text = insert(captext, text, i - 1)
  57.         i = i + caplen
  58.         len = len + caplen
  59.      end 
  60.  
  61.     i = i + 1
  62.  
  63. end
  64.  
  65. call ppm_InsertText(text)
  66. call ppm_ClearStatus()
  67. exit
  68.  
  69. exit_msg:
  70. do
  71.     parse arg msg
  72.  
  73.     call ppm_ShowStatus(msg)
  74.     exit
  75. end
  76.  
  77.